/**
 * 
 */
package cn.ad.server.web.spring.model.adview;

import cn.ad.server.web.spring.model.BidAdResponse;

/**
 * AdView BidResponse 对象类
 * @author Administrator
 */
public class AdViewBidResponse extends BidAdResponse{
	
	/**
	 * 不出价原因
	 * @author Administrator
	 *
	 */
	public enum NOT_BID_REASON{
		/**
		 * 0 未知错误
		 */
		UNKNOWN_ERR(0),
		/**
		 * 1 技术错误
		 */
		TECH_ERR(1),
		/**
		 * 2 无效请求
		 */
		INVALID_REQUEST(2),
		/**
		 * 3 已知网络爬虫
		 */
		WEB_CRAWLER(3),
		/** 
		 * 4 非人为阻塞
		 */
		BLOCKED(4),
		/**
		 * 5 云、数据中心、或代理 IP
		 */
		CLOUD_DC(5),
		/** 
		 * 6 不支持的设备
		 */
		NOT_SUPPORT_DEVICE(6),
		/** 
		 * 7 封禁的媒体
		 */
		FORBIDDEN_MEDIA(7),
		/**
		 * 8 用户不匹配
		 */
		USER_NOT_MATCH(8);

		private int value;

		NOT_BID_REASON(int value) {
			this.value = value;
		}

		public int getValue() {
			return value;
		}
	}
	
	/**
	 * 返回 BidRequest 的唯一标识
	 */
	private String id;
	
	/**
	 * 0 或多个 SeatBid 对象,表示备选的广告
	 * 目前仅支持一个
	 */
	private SeatBid[] seatbid;
	
	/**
	 * BidResponse 的唯一标识,由 DSP生成
	 * 【目前 AdView 不读取这个字段】
	 */
	private String bidid;
	
	/**
	 * 价格单位，取值: USD,RMB，缺省RMB
	 * 【目前仅支持 RMB】
	 */
	private String cur;
	
	/**
	 * 不出价原因
	 */
	private Integer nbr;
	
	/**
	 * 扩展对象
	 */
	private Object ext;

	/**
	 * @return the id
	 */
	public String getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * @return the seatbid
	 */
	public SeatBid[] getSeatbid() {
		return seatbid;
	}

	/**
	 * @param seatbid the seatbid to set
	 */
	public void setSeatbid(SeatBid[] seatbid) {
		this.seatbid = seatbid;
	}

	/**
	 * @return the bidid
	 */
	public String getBidid() {
		return bidid;
	}

	/**
	 * @param bidid the bidid to set
	 */
	public void setBidid(String bidid) {
		this.bidid = bidid;
	}

	/**
	 * @return the cur
	 */
	public String getCur() {
		return cur;
	}

	/**
	 * @param cur the cur to set
	 */
	public void setCur(String cur) {
		this.cur = cur;
	}

	public Integer getNbr() {
		return nbr;
	}

	public void setNbr(Integer nbr) {
		this.nbr = nbr;
	}

	/**
	 * @return the ext
	 */
	public Object getExt() {
		return ext;
	}

	/**
	 * @param ext the ext to set
	 */
	public void setExt(Object ext) {
		this.ext = ext;
	}
}
